<?php
class Installation
{
    /**
     * Singleton instance
     *
     * @var package_name
     */
    protected static $_instance = null;

    /**
     * Singleton pattern implementation makes "new" unavailable
     *
     * @return void
     */
    public function __construct()
    {}

    /**
     * Singleton pattern implementation makes "clone" unavailable
     *
     * @return void
     */
    public function __clone()
    {}

    /**
     * Returns an instance of package_name
     *
     * Singleton pattern implementation
     *
     * @return package_name Provides a fluent interface
     */
    public static function getInstance()
    {
        if (null === self::$_instance) {
            self::$_instance = new self();
        }

        return self::$_instance;
    }

    /**
     * Short description for method
     *
     * Long description for method (if any)...
     *
     * @param  Parameter name and Description.
     * @uses   Other method to use.
     * @return Return data type (if return)
     * @throws exceptionclass [description]
     */
    public function foo()
    {
        // TODO
        // entire content of function
        // must be indented four spaces
    }
}
